perm filename WAVE.FAI[TMP,LCS]6 blob sn#222541 filedate 1976-06-29 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00008 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE WAVE
C00004 00003	L101:	SETOM X#
C00006 00004	L6:	JSA 16,DPYOUT
C00008 00005	ININT:	SETZ
C00009 00006	GNAME:	SETZM FILEXT+1
C00010 00007	GETNAM:	MOVEI A,
C00011 00008	DSKIN:	MOVE NN,[INPO:	IOWD =1024,WD]
C00012 ENDMK
C⊗;
	TITLE WAVE
	EXTERNAL TYPLOC,DDCLR,DPYSET
	EXTERNAL DPYOUT,AVECT,ALINE
	A←1 ↔ B←2 ↔ C←3 ↔ K←4 ↔ NN←7 ↔ LPDL←←69 ↔ P←17
BEG:	MOVE P,[-LPDL,,PDL-1]
	JSA 16,TYPLOC
	[-=260]
	[-=512]
TRYOV:	CLRBFI
	OUTSTR [ASCIZ/ TYPE FILE NAME(<CR>=TEST.SND) /]
	PUSHJ P,GNAME

	OPEN 11,[17↔'DSK   '↔0]
	JRST 4,.
	LOOKUP 11,FILNAM
	JRST TRYOV

	HRRZI A,=512
	HRRZM A,INC#
L8:	CLRBFI
	OUTSTR [ASCIZ/ TYPE NUM OF SAMPLES(<CR>=512) /]
	HRRZI A,=1024
	HRRZM A,NZ#
	INCHWL B
	PUSHJ P,ININT
	CAILE =3072		;WON'T DISPLAY MORE THAN 3072 SMPLS AT A TIME.
	MOVEI =3072
	MOVEM J#
	SETZ
	INCHRS B
	CAIA
	PUSHJ P,ININT
	IDIVI 3
	MOVEM NY#
	SKIPE B,J
	MOVEM B,INC

	SETZM JCNT#
	HRRZI A,1
	HRRZM A,KCNT#
	SETZM JZ#
L11:	HRRZI A,1
	HRRZM A,L#
	MOVE A,INC
	MOVEM A,LX#

L100:	PUSHJ P,DSKIN

;	JSA 16,FASTIN
;	WD
;	[=1024]

	HRRZI A,=1024
	ADDB A,NZ
	CAMGE A,NY
	JRST L100
	SKIPN NY
	JRST L101
	SUBI A,=1024
	IMULI A,3
	MOVEM A,KCNT
	SOJ A,
	MOVEM A,JCNT
L101:	SETOM X#
	SETZ K,
	MOVE A,[POINT 12,WD]
L2:	SKIPE WD(K)
	SETZM X
	ILDB 0,A
	HRRZM 0,FW(K)
	ILDB 0,A
	HRRZM 0,FW+1(K)
	ILDB 0,A
	HRRZM 0,FW+2(K)
	ADDI K,3
	CAIGE K,=3072
	JRST L2
;	SKIPE X		ADD THIS TO RESTART ON ZEROS
;	JRST L8
L1:	JSA 16,DDCLR
	MOVE A,[=1000.0]
	FLTR B,INC
	FDVR A,B
	MOVEM A,X
L40:	JSA 16,DPYSET
	[1]
	DP
	[=4000]
	JSA 16,ALINE
	NFHD
	[=409]
	NFHD
	[-=409]
	JSA 16,ALINE
	[=500]
	ZER
	NFHD
	ZER
L10:	MOVE A,[-=500.0]
	MOVEM A,Z#
	MOVE K,L
L4:	AOS JCNT
	MOVE A,FW-1(K)
	CAILE A,=2047
	SUBI A,=4096
	MOVEM A,JZ
	IDIVI A,5
	MOVEM A,JY#
	KIFIX A,Z
	MOVEM A,JX#
	JSA 16,AVECT
	JX
	JY
	CAIN K,=3072
	JRST L6
	MOVE A,X
	FADM A,Z
	CAMGE K,LX
	AOJA K,L4
L6:	JSA 16,DPYOUT
	[1]
L31:	OUTSTR [ASCIZ/ SMPL /]
	MOVE KCNT
	PUSHJ P,OUTINT
	OUTSTR [ASCIZ/ TO /]
	MOVE JCNT
	PUSHJ P,OUTINT
	OUTSTR [ASCIZ/
/]
L55:	MOVE A,J
	AOJ A,
	JUMPE A,L7
	AOJ A,
	JUMPE A,L12
L5:	CLRBFI
	INCHWL B
	PUSHJ P,ININT
	MOVEM J
	SETZ
	INCHRS B
	CAIA
	PUSHJ P,ININT
	MOVEM NX
	HRRZI A,=3072
	CAMGE A,J
	MOVEM A,J
L77:	SKIPLE A,J
	MOVEM A,INC
	ADDI A,2
	JUMPGE A,L7
	JRST L9
L12:	MOVE A,L
	ADD A,NX#
	MOVEM A,LX
	MOVE A,KCNT
	ADD A,NX
	SOJ A,
	MOVEM A,JCNT
	JRST L7
L9:	MOVE A,L
	ADD A,J
	MOVEM A,LX
	MOVE A,KCNT
	ADD A,J
	SOJ A,
	MOVEM A,JCNT
	SKIPGE LX
	SETZM LX
L7:	MOVE A,LX
	AOJ A,
	MOVEM A,L
	MOVE A,INC
	ADDM A,LX
	MOVE A,JCNT
	AOJ A,
	MOVEM A,KCNT
	MOVE A,L
	CAILE A,=3072
	JRST L11
	JRST L1
ININT:	SETZ
	SETZ C,
	CAIN B,"-"
	JRST MIN
RECUR:	CAIL B,60
	CAILE B,71
	JRST SYNE
	IMULI =10
	ADDI -60(B)
GTCHR:	INCHRS B
	CAIA
	JRST RECUR
SYNE:	SKIPGE C
	MOVNS
	POPJ P,
MIN:	SETO C,
	JRST GTCHR

OUTINT:	HRRZI B,16
	JUMPE OUTZ
	IDIVI =10
	ADDI A,60
	HRRZM A,BLK1(B)
	SOJGE B,OUTINT+1
OCHR:	OUTCHR BLK1+1(B)
	CAIGE B,15
	AOJA B,OCHR
	POPJ P,
OUTZ:	CAIL B,16
	HRLZI B,300000
	JRST OCHR

INA5:	SETZ A,
	HRLZI C,700
	INCHWL
	CAIE 15
	CAIN 12
	POPJ P,
	IDPB C
	TRNN A,177
	INCHRS
	POPJ P,
	JRST .-7

GNAME:	SETZM FILEXT+1
	SETZM FILPPN
	MOVE A,['SND   ']
	MOVEM A,FILEXT
	PUSHJ P,GETNAM
	SKIPN A
	MOVE A,['TEST  ']
GEXT:	MOVEM A,FILNAM
	CAIE C,"."
	JRST NOEXTN
	PUSHJ P,GETNAM
	MOVEM A,FILEXT
NOEXTN:	CAIE C,"["
	JRST FFDX
	PUSHJ P,GETP
	HRLZM A,FILPPN
	PUSHJ P,GETP
	HRRM A,FILPPN
FFDX:	INCHRW C
	CAIE C,12
	JRST FFDX
	POPJ P,
GETNAM:	MOVEI A,
	MOVE B,[440600,,A]
GETNML:	PUSHJ P,RCH
	POPJ P,
	SUBI C,40
	TLNE B,770000
	IDPB C,B
	JRST GETNML

GETP:	MOVEI A,
GETPL:	PUSHJ P,RCH
	POPJ P,
	TRNE A,770000
	JRST GETPL
	LSH A,6
	ADDI A,-40(C)
	JRST GETPL

RCH:	INCHWL C
	CAIN C,42
	JRST RCHQ
	CAIE C,11
	CAIN C," "
	JRST RCH
	CAIE C,"."
	CAIN C,","
	POPJ P,
	CAIE C,"["
	CAIN C,"]"
	POPJ P,
RCHQR:	CAIGE C,40
	POPJ P,
	CAIL C,"a"
	CAILE C,"z"
	CAIA
	SUBI C,40
POPJ1:	AOS (P)
	POPJ P,

RCHQ:	INCHWL C
	JRST RCHQR
DSKIN:	MOVE NN,[INPO:	IOWD =1024,WD]
	MOVEI NN+1,0
	INPUT 11,NN
	POPJ P,
	
FILNAM:	0
FILEXT:	0
	0
FILPPN:	0
	
BLK1:	BLOCK 17
DP:	0

WD:	BLOCK =1024

FW:	BLOCK =1024*3

NFHD:	-=500
ZER:	0
PDL:	BLOCK LPDL
	END BEG